<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<style>
		body {
			font-family: Helvetica, Arial, sans-serif;
			font-size: 12px;
		}

		h1 {
			font-size: 1.5em;
		}
		h2 {
			font-size: 1.2em;
		}
	</style>
</head>
<body>
	<p>Some paragraph text</p>
	<h1>some heading 1 text</h1>
	<h2>some heading 2 text</h2>

	<a href="#" id="size-12">12</a>
	<a href="#" id="size-14">14</a>
	<a href="#" id="size-16">16</a>
</body>
<script type="text/javascript">
//闭包允许将函数与其所操作的某些数据（环境）关连起来。这显然类似于面向对象编程。在面向对象编程中，对象允许我们将某些数据（对象的属性）与一个或者多个方法相关联。
//因而，一般说来，可以使用只有一个方法的对象的地方，都可以使用闭包。
	function makeSizer(size) {
		return function() {
			document.body.style.fontSize = size + 'px';
		};
	}

	var size12 = makeSizer(12);
	var size14 = makeSizer(14);
	var size16 = makeSizer(16);

	console.log(size12);
	console.log(size14);
	document.getElementById('size-12').onclick = size12;//这里只要写函数名即可
	document.getElementById('size-14').onclick = size14;
	document.getElementById('size-16').onclick = size16;
</script>
</html>